package com.haidong.dao;

import com.haidong.domain.Account;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 *  使用的是纯注解开发,所以用不上映射的XML文件
 *  之前疑惑为什么dao层接口没有XML映射文件也没有实现类,却能被IOC容器获取到bean并管理
 *  后来发现,忘记了mybatis的代理模式,dao层接口实际上是mapper代理对象在执行
 */
public interface AccountDao {
    @Insert("insert into tbl_account(name,money) values (#{name},#{money})")
    void save(Account account);

    @Delete("delete from tbl_account where id = #{id}")
    void delete(Integer id);

    @Update("update tbl_account set name = #{name}, money = #{money} where id = #{id}")
    void update(Account account);

    @Select("select * from tbl_account")
    List<Account> findAll();

    @Select("select * from tbl_account where id = #{id}")
    Account findById(Integer id);
}
